package cn.zzf.algs.note.base.collection.v2;

public interface List<T> extends Iterable<T> {

    /** 向栈顶推送一个元素 */
    void push(T element);

    /** 从栈顶弹出一个元素 */
    T pop();

    /** 删除尾节点元素 */
    T removeLast();

    int size();

    /** 将元素添加到队尾 */
    void enqueue(T element);

    /** 从队首弹出一个元素 */
    T dequeue();

    /** 删除指定位置的结点 */
    T removeAt(int index);

    /** 向指定位置插入节点 */
    void insertAt(T element, int index);

}
